page.tsx 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. "use client";
  2. import { Toast } from "antd-mobile";
  3. import { useTranslations } from "next-intl";
  4. import { FC, useRef, useState } from "react";
  5. import "./page.scss";
  6. interface Props {}
  7. const App: FC<Props> = (props) => {
  8. const t = useTranslations("SummaryPage");
  9. const sliderRef = useRef<HTMLDivElement>(null);
  10. const [num, setNum] = useState(100);
  11. const [money, setMoney] = useState("5000");
  12. const handleSlide: any = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
  13. if (sliderRef.current) {
  14. const startX = sliderRef.current.getBoundingClientRect().x;
  15. const x = e.clientX - startX;
  16. const xRem = x / (144 * 0.6);
  17. const intNum = Math.round(10000 * xRem) - Math.round((10000 * xRem) % 10);
  18. setNum(intNum);
  19. const m = intNum * 50;
  20. let r = "";
  21. const arr = m.toString().split("");
  22. arr.forEach((item, i) => {
  23. if (i !== arr.length - 1 && (arr.length - i - 1) % 3 === 0) {
  24. r += item + ",";
  25. } else {
  26. r += item;
  27. }
  28. });
  29. setMoney(r);
  30. const scale = (Math.round(xRem * 10000) / 100.0).toFixed(2) + "%";
  31. sliderRef.current.style.width = scale;
  32. }
  33. };
  34. const copy = (text: string) => {
  35. navigator.clipboard.writeText(text).then(() => {
  36. Toast.show({ icon: "success", content: t("copySuc"), maskClickable: false });
  37. });
  38. };
  39. return (
  40. <div className="content">
  41. <div className="summary referral-router-view">
  42. <div className="content">
  43. <div className="title">
  44. <div>
  45. {t("Hoje")}
  46. <span className="iconfont icon-bangzhu" />
  47. </div>
  48. </div>
  49. <div className="cardMian">
  50. <div>
  51. <ul className="today">
  52. <li>
  53. <span className="num">0</span>
  54. <span> {t("Inscrições")} </span>
  55. </li>
  56. <li>
  57. <span className="num">0</span>
  58. <span> {t("Novos")} </span>
  59. </li>
  60. <li>
  61. <span className="num">0</span>
  62. <span> {t("Aposta")} </span>
  63. </li>
  64. <li>
  65. <span className="num">0</span>
  66. <span> {t("Comissão")} </span>
  67. </li>
  68. </ul>
  69. </div>
  70. </div>
  71. </div>
  72. <div className="content">
  73. <div className="title">
  74. <div>
  75. {t("Total")}
  76. <span className="iconfont icon-bangzhu" />
  77. </div>
  78. </div>
  79. <div className="cardMian">
  80. <div>
  81. <ul className="total">
  82. <li>
  83. <span className="num">0</span>
  84. <span> {t("Inscrições")} </span>
  85. </li>
  86. <li>
  87. <span className="num">0</span>
  88. <span> {t("Jogadores")} </span>
  89. </li>
  90. <li>
  91. <span className="num">0</span>
  92. <span> {t("ApostaTotal")} </span>
  93. </li>
  94. <li>
  95. <span className="num">0</span>
  96. <span> {t("Comissão")} </span>
  97. </li>
  98. </ul>
  99. </div>
  100. </div>
  101. </div>
  102. <div className="content">
  103. <div className="title">
  104. <div>
  105. {t("Comissão")}
  106. <span className="iconfont icon-bangzhu" />
  107. </div>
  108. </div>
  109. <div className="cardMian">
  110. <div className="vip">
  111. <div className="level">
  112. <span className="iconfont icon-vip"></span>
  113. <span className="levelNum">1</span>
  114. </div>
  115. <div>
  116. {t("Nível")}
  117. <span className="iconfont icon-tishi"></span>
  118. </div>
  119. </div>
  120. <div>
  121. <ul className="commission">
  122. <li>
  123. <span className="num">
  124. <span>{t("R$")}</span>
  125. <span className="cash">0.00</span>
  126. </span>
  127. <span> {t("TotalPago")} </span>
  128. </li>
  129. <li>
  130. <span className="num">
  131. <span>{t("R$")}</span>
  132. <span className="cash">0.00</span>
  133. </span>
  134. <span> {t("Não")} </span>
  135. </li>
  136. </ul>
  137. <div className="wallet">
  138. <div className="btn"> {t("TRANSFERIR")} </div>
  139. <div className="tip">
  140. <span className="iconfont icon-tishi1"></span>
  141. {t("Valor")}
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div className="content shareMain">
  148. <div className="title">{t("title1")}</div>
  149. <div className="share">
  150. <ul className="sharePlatform">
  151. <li>
  152. <a href="">
  153. <img src="/img/facebook.webp" alt="" />
  154. </a>
  155. <span>{t("Facebook")}</span>
  156. </li>
  157. <li>
  158. <a href="">
  159. <img src="/img/WhatsApp.webp" alt="" />
  160. </a>
  161. <span>{t("WhatsApp")}</span>
  162. </li>
  163. <li>
  164. <a href="">
  165. <img src="/img/Telegram.png" alt="" />
  166. </a>
  167. <span>{t("Telegram")}</span>
  168. </li>
  169. <li>
  170. <a href="">
  171. <img src="/img/Twitter.webp" alt="" />
  172. </a>
  173. <span>{t("Twitter")}</span>
  174. </li>
  175. <li>
  176. <a href="">
  177. <img src="/img/email.webp" alt="" />
  178. </a>
  179. <span>{t("Email")}</span>
  180. </li>
  181. </ul>
  182. </div>
  183. <div className="shareLink">
  184. <div className="tip">{t("content1")}</div>
  185. <div className="copyUrl">
  186. <span className="url omitWrap">{t("https")}</span>
  187. <span id="copy" onClick={() => copy(t("https"))}>
  188. {t("Cópia")}
  189. </span>
  190. </div>
  191. </div>
  192. </div>
  193. <div className="content">
  194. <div className="title">
  195. <div> {t("title2")}</div>
  196. </div>
  197. <div>
  198. <div className="tel-box">
  199. <a href="" className="telicon">
  200. <img src="/img/telegram.webp" alt="" />
  201. </a>
  202. <div className="hintTitle3">{t("content2-1")}</div>
  203. </div>
  204. <div className="hintTitle2">
  205. <i className="iconfont icon-tishi"></i>
  206. {t("content2-2")}
  207. <a
  208. href=""
  209. style={{
  210. borderBottom: "1px solid rgb(109, 155, 195)",
  211. color: "#0000EE",
  212. }}
  213. >
  214. {t("business")}
  215. </a>
  216. </div>
  217. </div>
  218. </div>
  219. <div className="content">
  220. <div className="title">
  221. <div>
  222. {t("title3")}
  223. <span className="iconfont icon-bangzhu"></span>
  224. </div>
  225. </div>
  226. <div className="hint">
  227. <div className="hintTitle">{t("content3")}</div>
  228. <div className="imgContent">
  229. <img src="/img/cash.png" alt="" />
  230. <div>
  231. {t("number")}
  232. {num}
  233. <br />
  234. {t("Comissão")} &gt; {t("R$")} {money} {t("money")}
  235. </div>
  236. <div
  237. className="slider van-slider"
  238. style={{ height: "0.02rem" }}
  239. onClick={handleSlide}
  240. >
  241. <div
  242. className="van-slider__bar"
  243. style={{ width: "0.900901%", background: "rgb(0, 157, 128)" }}
  244. ref={sliderRef}
  245. >
  246. <div role="slider" className="van-slider__button-wrapper">
  247. <div className="img"></div>
  248. </div>
  249. </div>
  250. </div>
  251. </div>
  252. <div className="relationSchema">
  253. <div className="groupTitle">{t("title4")}</div>
  254. <img src="/img/group_br.webp" alt="" className="groupImg" />
  255. <ul className="rules">
  256. <li>
  257. {t("content4-1")}
  258. <span style={{ color: "red" }}>{t("red")}</span>.
  259. </li>
  260. <li>{t("content4-2")}</li>
  261. </ul>
  262. </div>
  263. </div>
  264. </div>
  265. <div className="content"></div>
  266. </div>
  267. </div>
  268. );
  269. };
  270. export default App;